package com.ruoyi.project.product.manager.service;

import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.text.Convert;
import com.ruoyi.project.product.manager.domain.Manager;
import com.ruoyi.project.product.manager.mapper.ManagerMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ManagerServiceImpl implements IManagerService {

    @Autowired
    private ManagerMapper managerMapper;

    /**
     * 产品管理查询
     * @param manager
     * @return
     */
    @Override
    public List<Manager> selectManagerList(Manager manager) {
        return managerMapper.selectManagerList(manager);
    }

    /**
     * 产品管理新增
     * @param manager
     * @return
     */
    @Override
    public int insertManager(Manager manager) {
        return managerMapper.insertManager(manager);
    }

    /**
     * 根据id查询产品管理
     * @param managerId
     * @return
     */
    @Override
    public Manager selectManagerById(Long managerId) {
        return managerMapper.selectManagerById(managerId);
    }

    /**
     * 产品管理修改
     * @param manager
     * @return
     */
    @Override
    public int updateManager(Manager manager) {
        return managerMapper.updateManager(manager);
    }

    /**
     * 产品管理批量删除操作
     * @param ids
     * @return
     * @throws Exception
     */
    @Override
    public int deleteManagerByIds(String ids) throws Exception {
        return managerMapper.deleteManagerByIds(Convert.toLongArray(ids));
    }

    /**
     * 校验产品管理名称是否存在
     * @param manager
     * @return
     */
    @Override
    public String checkManagerNumUnique(Manager manager) {
        //判断id是否为空，是返回-1，不是获取id
        Long managerId = StringUtils.isNull(manager.getManagerId()) ? -1L : manager.getManagerId();
        //根据产品管理名称查询表里的产品管理名称是否存在
        Manager info = managerMapper.checkManagerNumUnique(manager.getManagerNum());
        //如果info不为空，并且，表里的managerId跟传进来的managerId不相等的话，返回一个1，不然返回一个0
        if (StringUtils.isNotNull(info) && info.getManagerId().longValue() != managerId.longValue())
        {
            return UserConstants.SERIES_NAME_NOT_UNIQUE;
        }
        return UserConstants.SERIES_NAME_UNIQUE;
    }
}
